﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using DTO_MechSysWeb;
using BLL_MechSysWeb;

namespace WEB_MechSysWeb.Paginas_Logado
{
    public partial class MasterPageLogado : System.Web.UI.MasterPage
    {
        DTOCliente dtoCliente = new DTOCliente();
        BLLCliente bllCliente = new BLLCliente();
        BLLAgendamento bllAgendamento = new BLLAgendamento();
        BLLVeiculo bllVeiculo = new BLLVeiculo();
        BLLMensagem bllMensagem = new BLLMensagem();
        BLLOrdemPendente bllOrdemPendente = new BLLOrdemPendente();
        MembershipUser memberShipUser;
        string userID;

        protected void Page_Load(object sender, EventArgs e)
        {
            HyperLinkRoles.Visible = false;
            if (Roles.IsUserInRole("Cliente"))
            {
                HyperLinkRoles.Text = "Perfil";
                HyperLinkRoles.NavigateUrl = "~/Paginas_Logado/ClientePerfil.aspx";
                HyperLinkRoles.Visible = true;

                PreencheCliente();
            }
            else if (Roles.IsUserInRole("Administrador"))
            {
                HyperLinkRoles.Text = "Administração";
                HyperLinkRoles.NavigateUrl = "~/Paginas_Administrador/PaginaPrincipalAdm.aspx";
                HyperLinkRoles.Visible = true;
            }
        }

        public void PreencheCliente()
        {
            memberShipUser = Membership.GetUser();
            userID = memberShipUser.ProviderUserKey.ToString();      

            dtoCliente = bllCliente.BuscarClientePorUserID(userID);

            //O componente formview ImagemSelecionado recebe a imagem do datatable.
            List<DTOCliente> LstClienteImagem = new List<DTOCliente>();
            LstClienteImagem.Add(dtoCliente);
            ImagemSelecionado.DataSource = LstClienteImagem;
            ImagemSelecionado.DataBind();

            lblNomeCliente.Text = string.Format("{0} {1}", dtoCliente.Nome, dtoCliente.Sobrenome);

            int clienteID = bllCliente.BuscarClienteIDPorUserID(userID);

            lnkAgendamentos.Text = bllAgendamento.BuscarNumAgendamentosPendentes(clienteID).ToString();
            lnkVeiculos.Text = bllVeiculo.BuscarNumVeiculosCadastrados(clienteID).ToString();
            lnkServicos.Text = bllOrdemPendente.BuscarNumOrdensPendentesPorClienteID(clienteID).ToString();
            lnkMensagens.Text = bllMensagem.BuscarNumMensagensNãoLidas(clienteID).ToString();
        }
    }
}